<?php
namespace Admin\Model;

use Frame\Libs\BaseModel;

final class CategoryModel extends BaseModel
{
    protected $table = "category";
    //获取无限级分类数据
    public function CategoryList($arrs,$level=0,$pid=0)
    {
		//定义一个数组,每找到一个合适分类,就存储到结果数组
		//结果数组中分类的顺序,就是最终要显示的分类顺序
		//定义变量$level,来表示菜单的层级
		//pid=0是第0称菜单,递归调用一次,菜单层级为$level+1
        //静态变量，用来保存结果数组
        //静态变量：函数或方法执行完毕，该变量不销毁
        //静态变量只在第一次调用后初始化一次，之后不在初始化
        static $categorys = [];

        //循环原始分类数据
        foreach ($arrs as $arr)
        {
            //如果当前菜单的pid等于参数$pid，给新数组添加元素
            if($arr["pid"] == $pid)
            {
                $arr["level"] = $level;
                $categorys[] = $arr;
                //递归调用
                $this->CategoryList($arrs,$level+1,$arr["id"]);
            }
        }
        return $categorys;
    }
}